package org.example.reggie.utils;

import org.example.reggie.entry.Employee;

import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 当前线程存储小量数据
 * 对ThreadLocal进行封装
 * 方便用户在没有办法拿request对象的地方拿request对象中的信息，比如用户id
 * 需要`ThreadLocal`来进行对象的获取，这个线程是贯穿整个运行的，可以通过他来获取
 * 基于ThreadLocal 封装工具类，用户保存和获取当前登录的用户id
 * ThreadLocal以线程为 作用域，保存每个线程中的数据副本
 */
public class ThreadLocalUtil {

    private static ThreadLocal<Map> threadLocal = new ThreadLocal<>();
    private static Map<String, Objects> map = new HashMap<>();

    public static void setMap(Map map){
        threadLocal.set(map);
    }

    public static Map getMap(){
        return  threadLocal.get();
    }

    public static void remove(){
        threadLocal.remove();
    }

}
